#include "commom.hpp"


int main()
{
    // 客户端进行创建共享内存
    int shmid = Creatshm();

    // 挂接到自己的进程地址空间中
    char *sharespace = (char *)shmat(shmid, nullptr, 0);

    // 直接利用共享内存，进行读取，就把他当成自己的内存使用了

    struct shmid_ds shmds;
    while (true)
    {
        cout << "client say@ " << sharespace<<endl ;
        sleep(1);

        shmctl(shmid, IPC_STAT, &shmds);//获取共享内存属性
        cout << "shm size: " << shmds.shm_segsz << endl;
        cout << "shm nattch: " << shmds.shm_nattch << endl;
        printf("shm key: 0x%x\n", shmds.shm_perm.__key);
        cout << "shm mode: " << shmds.shm_perm.mode << endl;
    }

    // 取消挂接
    shmdt(sharespace);

    // 删除共享内存
    shmctl(shmid, IPC_RMID, nullptr);

    return 0;
}